// 这个moduleA会被放到最外层的state里面
export default {
  state: {
    name: 'Mr.zhang'
  },
  mutations: {
    updateName(state) {
      state.name = 'Mr.小三';
    }
  },
  getters: {
    fullName1: state => state.name + ' aha',
    fullName2: (state, getters, rootState) => getters.fullName1 + ' bhb ' + rootState.counter,
  },
  actions: {
    // 这里的context不在是$store对象了, 
    // context里面包含的属性
    // state: 当前模块的state数据
    // commit: 当前模块提交, 只会提交到当前模块的mutations方法里
    // dispatch: 当前模块异步消息分发
    // getters: 当前模块getters属性获取
    // rootGetters: 根组织getters属性获取
    // rootState: 根阻止state数据获取
    // aUpdateName(context) {
    // 使用对象解构取值: 对象中有的属性, 可以直接通过 {} 获取
    aUpdateName({ commit, state, rootState }) {
      // console.log(context);
      setTimeout(() => {
        commit('updateName');
      }, 1000);
    }
  },
}